package edu.mse.camel.client.events;

/**
 * Each event must have a unique id
 * 
 *
 */
public interface EventIDs {

	public static final String LOGIN_EVENT = "edu.mse.camel.client.login";
	
	// after the server library login/logout is called and the status has been changed, this event will be published async
	public static final String NOTIFY_LOGIN_STATUS_CHANGE_EVENT = "edu.mse.camel.client.NotifyLoginStatusChange";
	// after you receive the notification, you can query for the current user name
	public static final String QUERY_LOGIN_STATUS_EVENT = "edu.mse.camel.client.queryLoginStatus";
	
	//choi
	public static final String LOGOUT_EVENT = "edu.mse.camel.client.logout";
	
	//mac
	public static final String QUERY_TEAM_STATUS_EVENT = "edu.mse.camel.client.queryTeamStatus";
	
	//mac
	public static final String QUERY_SESSION_PARTICIPANT_STATUS_EVENT = "edu.mse.camel.client.querySessionParticipantStatus";
	
	//choi
	public static final String QUERY_SESSION_LIST_EVENT = "edu.mse.camel.client.session.querySessionList";
	public static final String CREATESESSION_EVENT = "edu.mse.camel.client.session.createsession";
	public static final String JOINSESSION_EVENT = "edu.mse.camel.client.session.joinsession";
	public static final String LEAVE_SESSION_EVENT = "edu.mse.camel.client.session.leaveSession";
	public static final String NOTIFY_SYNC_FINISHED_EVENT = "edu.mse.camel.client.session.notifySyncFinished";
	
	//mac
	public static final String ASSIGN_ROLE_EVENT = "edu.mse.camel.client.session.assignRole";
	public static final String NOTIFY_SESSION_ROLE_CHANGE_EVENT = "edu.mse.camel.client.notifySessionRoleChange";
	public static final String NOTIFY_SESSION_PARTICIPANT_CHANGE_EVENT = "edu.mse.camel.client.notifySessionParticipantChange";
	public static final String NOTIFY_TEAM_STATUS_CHANGE_EVENT = "edu.mse.camel.client.notifyTeamStatusChange";
	
	public static final String RECEIVE_CHAT_EVENT = "edu.mse.camel.client.chat.receiveMessage";
	public static final String SEND_CHAT_EVENT = "edu.mse.camel.client.chat.sendMessage";

	
	//darpan
	public static final String MODEL_UPDATE_EVENT = "edu.mse.camel.client.collab.modelupdate";

	public static final String MODEL_COMMAND_EVENT = "edu.mse.camel.client.collab.modelcommand";

	public static final String VIEWPORT_CHANGED_EVENT = "edu.mse.camel.client.collab.viewport.changed";

	//these two events are used for the client to send/receive the invitation from other clients
	public static final String RECEIVE_INVITE_EVENT = "edu.mse.camel.client.lobby.receiveInvite";
	public static final String SEND_INVITE_EVENT = "edu.mse.camel.client.lobby.sendInvite";
	
	public static final String RECEIVE_PEER_EVENT = "edu.mse.camel.client.peer.receiveGeneric";
	public static final String SEND_PEER_EVENT = "edu.mse.camel.client.peer.sendGeneric";
	
	public static final String BASELINE_RESOURCE_UPDATE_EVENT = "edu.mse.camel.client.peer.resourceUpdate";

	public static final String MODEL_UPDATE_EVENT2 = "edu.mse.camel.client.peer.modelupdate2";
	public static final String MODEL_REWIND = "edu.mse.camel.client.peer.modelrewind";
	public static final String PLACABACK_POST = "edu.mse.camel.client.peer.playbackpost";

	
	//these two events are for querying the viewport information of others
	//and to send your viewport information to others.
	public static final String QUERY_VIEWPORT_INFO_EVENT = "edu.mse.camel.client.peer.viewport.query";;
	public static final String SEND_VIEWPORT_CHANGE_EVENT = "edu.mse.camel.client.peer.viewport.sendChange";

	public static final String CLIENT_INTERNAL_EVENT = "edu.mse.camel.client.internal.event";

	public static final String POSTERBOARD_INITIATION_EVENT = "edu.mse.camel.client.pbinitiation";
	
	public static final String SEMAPHORE_EVENT = "edu.mse.camel.client.semaphore";

	public static final String CALL_FOR_ATTENTION = "edu.mse.client.posterbord.birdview.callforattention";
}
